Intro and setup

Goal here is to validate the initial clustering and UMAP and ensure things like batch effect and clustering reflect the underlying biology.

#+ message = FALSE, warning = FALSE
suppressPackageStartupMessages(library(Seurat))
suppressPackageStartupMessages(library(EnsDb.Hsapiens.v86))
suppressPackageStartupMessages(library(BSgenome.Hsapiens.UCSC.hg38))
suppressPackageStartupMessages(library(Matrix))
suppressPackageStartupMessages(library(SeuratWrappers))
suppressPackageStartupMessages(library(harmony))
suppressPackageStartupMessages(library(ggplot2))
suppressPackageStartupMessages(library(dplyr))

setwd("~/gibbs/DOGMAMORPH/Ranalysis")

results<-readRDS( "Objects/20230518Completeobj.rds")

Initial checks

First I am going to check there is no library or individual driven batch effect across the UMAP by visualizing on those. I’ll also visualize the treatment and timepoint to see if there are differences there that we’re picking up.

DimPlot(results, label = TRUE, reduction = "umap")
## Loading required package: Signac

DimPlot(results, group.by="orig.ident", reduction = "umap")

DimPlot(results, group.by = "Participant", reduction = "umap")

DimPlot(results, group.by = "Treatment", reduction = "umap")

DimPlot(results, group.by = "Timepoint", reduction = "umap")

DimPlot(results, group.by = "Cell.Source", reduction = "umap")

Notes: Clustering - Overall looks good, appears that the substructure of outlying populations is reasonably separated by the clustering algorithm, although the mass of presumably CD4+ T cells are potentially overclustered as we can see several overlapping and presumably small clusters in that mass. Library - It appears there are no clusters driven entirely by library. There are differences in distribution but I suspect those are primarily due to PBMC vs CD4 libraries. Participant - There is clearly some variation, in participant that is not entirely corrected for (ex there is a patch of green that may be 5018 or something else along the bottom left of the large cluster). Overall this may be acceptbale variation, but after annotation I should check that there are not too much participant - to - participant variability in cluster membership Treatment - Minor treatment driven differences but overall appears well mixed Time point - Appears to be some outlying populations that are potentially perturbed, but it’s overall looking well mixed. Cell source - looks like that main cluster is CD4, with a sub cluster pulled out to the left and to the bottom. CD4 also participates in other clusters, likely due to low levels of contamination.

Also checking here to see if there are any QC related factors that might be driving some of the cluster distribution:

FeaturePlot(results, "mt", reduction = "umap")

FeaturePlot(results, "nCount_RNA", reduction = "umap")

FeaturePlot(results,"nFeature_RNA", reduction = "umap")

FeaturePlot(results,"nCount_ATAC", reduction = "umap")

FeaturePlot(results,"nFeature_ATAC", reduction = "umap")

FeaturePlot(results,"nFeature_ADT.dsb", reduction = "umap")

FeaturePlot(results,"nFeature_ADT.dsb", reduction = "umap")

No clusters appear overwhelmingly driven by a QC metric. A few on the periphery have high RNA/ATAC counts/features but nothing too abnormal

Next I’ll just briefly look to see if there are quality differences across samples

group_by(results@meta.data, Participant)%>%summarise(Cell_count=n(), Median_genes=median(nFeature_RNA), Median_RNA_UMI=median(nCount_RNA), Median_ATAC_Fragments=median(nCount_ATAC), Median_ADT_UMI=median(nCount_ADT))
## # A tibble: 12 x 6
##    Participant Cell_count Median_genes Median_RNA_UMI Median_ATAC_Fragments
##          <int>      <int>        <dbl>          <dbl>                 <dbl>
##  1        5003        909        1326           2503                  4593 
##  2        5009       1425        1643           3328                  5032 
##  3        5014       2942        1520.          3095                  4794.
##  4        5016       1864        1469           2885                  3992 
##  5        5017       2288        1599           3116.                 4640.
##  6        5018       6414        1300           2299                  3639 
##  7        5020       1708        1363           2540.                 3648 
##  8        5021        931        1459           2817                  4856 
##  9        5023       1833        1539           3029                  5034 
## 10        5026       4236        1504.          3038                  4364.
## 11        5035       2564        1438.          2854.                 4232 
## 12        5037       2348        1472.          2791                  5070.
## # i 1 more variable: Median_ADT_UMI <dbl>
group_by(results@meta.data, Participant, Timepoint)%>%summarise(Cell_count=n(), Median_genes=median(nFeature_RNA), Median_RNA_UMI=median(nCount_RNA), Median_ATAC_Fragments=median(nCount_ATAC), Median_ADT_UMI=median(nCount_ADT))%>%print(n=10000)
## `summarise()` has grouped output by 'Participant'. You can override using the
## `.groups` argument.
## # A tibble: 24 x 7
## # Groups:   Participant [12]
##    Participant Timepoint Cell_count Median_genes Median_RNA_UMI
##          <int>     <int>      <int>        <dbl>          <dbl>
##  1        5003         0        415        1379           2620 
##  2        5003         3        494        1285           2386.
##  3        5009         0        342        1350           2558.
##  4        5009         3       1083        1745           3622 
##  5        5014         0       1127        1470           2928 
##  6        5014         3       1815        1543           3186 
##  7        5016         0        851        1487           2933 
##  8        5016         3       1013        1451           2847 
##  9        5017         0        563        1594           3076 
## 10        5017         3       1725        1606           3131 
## 11        5018         0       5451        1238           2136 
## 12        5018         3        963        1623           3167 
## 13        5020         0        832        1363           2528.
## 14        5020         3        876        1364.          2580.
## 15        5021         0        355        1469           2957 
## 16        5021         3        576        1435           2767 
## 17        5023         0       1154        1502.          2936.
## 18        5023         3        679        1601           3209 
## 19        5026         0       3475        1475           2986 
## 20        5026         3        761        1618           3434 
## 21        5035         0       1411        1377           2699 
## 22        5035         3       1153        1527           3098 
## 23        5037         0       1651        1403           2623 
## 24        5037         3        697        1843           3771 
## # i 2 more variables: Median_ATAC_Fragments <dbl>, Median_ADT_UMI <dbl>
group_by(results@meta.data, Treatment, Timepoint)%>%summarise(Cell_count=n(), Median_genes=median(nFeature_RNA), Median_RNA_UMI=median(nCount_RNA), Median_ATAC_Fragments=median(nCount_ATAC), Median_ADT_UMI=median(nCount_ADT))
## `summarise()` has grouped output by 'Treatment'. You can override using the
## `.groups` argument.
## # A tibble: 6 x 7
## # Groups:   Treatment [3]
##   Treatment  Timepoint Cell_count Median_genes Median_RNA_UMI
##   <chr>          <int>      <int>        <dbl>          <dbl>
## 1 Bup.Nalo           0       8295         1351          2497 
## 2 Bup.Nalo           3       5182         1582          3165 
## 3 Methadone          0       2440         1415          2698.
## 4 Methadone          3       3466         1449          2816 
## 5 Naltrexone         0       6892         1439          2846 
## 6 Naltrexone         3       3187         1574          3199 
## # i 2 more variables: Median_ATAC_Fragments <dbl>, Median_ADT_UMI <dbl>

Gene Expression overlays

Goal of this section is to use a few known markers to very roughly annotate the cells. I’ll use several sources for these. One is the Seurat tutorial, which is mainly RNA markers: Cluster ID Markers Cell Type IL7R, CCR7 Naive CD4+ T CD14, LYZ CD14+ Mono IL7R, S100A4 Memory CD4+ MS4A1 B CD8A CD8+ T FCGR3A, MS4A7 FCGR3A+ Mono GNLY, NKG7 NK FCER1A, CST3 DC PPBP Platelet

pbmc_marks_Seurat<-c("IL7R","CCR7","CD14","LYZ","S100A4","MS4A1","CD8A","FCGR3A","MS4A7","GNLY","NKG7","FCER1A","CST3","PPBP")
DefaultAssay(results)<-"RNA"
results<-ScaleData(results, features = pbmc_marks_Seurat)
## Centering and scaling data matrix
FeaturePlot(results, pbmc_marks_Seurat, ncol = 4)

DotPlot(results, features = pbmc_marks_Seurat)+theme(axis.text.x = element_text(vjust = 0.7, angle = 90))

VlnPlot(results, features = pbmc_marks_Seurat)+theme(axis.text.x = element_text(vjust = 0.7, angle = 90))

DoHeatmap(results, pbmc_marks_Seurat)

results<-ScaleData(results, features = pbmc_marks_Seurat, split.by = "orig.ident")
## Centering and scaling data matrix
## Centering and scaling data from split JC10
## Centering and scaling data from split JC11
## Centering and scaling data from split JC12
## Centering and scaling data from split JC4
## Centering and scaling data from split JC5
## Centering and scaling data from split JC6
## Centering and scaling data from split JC7
## Centering and scaling data from split JC8
## Centering and scaling data from split JC9
DoHeatmap(results, pbmc_marks_Seurat, disp.min = -2, disp.max = 2)

Observations - The heatmap looks somewhat different from what I’m used to on account of it being a mixed population without expression of most markers in most cell types (as opposed to the typical CD4 or the DE defined markers). Based on this, I would annotate the first 15 clusters as : 0- Naive CD4+ 1- Naive CD4+ 2- Mix of Naive and Memory CD4+ 3- Memory CD4+ 4- Memory CD4+/CD8/NK 5- B cells 6- Naive CD4 7-Memory CD4+ 8-Naive CD4+ 9-NK 10-B cells 11-CD14+ Mono 12-DC 13-FCGR3A+ Mono 14- Memory CD4+

(no platelets in our data)

Another is the clonal replacement paper for Howard Chang (Yost et al. 2019), also RNA: Relevant method Excerpt: >including CD3G, CD3D, CD3E, CD2 (T cells), CD8A, GZMA (CD8+ T cells), CD4, FOXP3 (CD4+ T cells and Treg cells), KLRC1, KLRC3 (NK cells), CD19, CD79A (B cells), SLAMF7, IGKC (plasma cells), FCGR2A, CSF1R (macrophages), FLT3 (dendritic cells), CLEC4C (plasmacytoid dendritic cells)

pbmc_marks_Chang<-c("CD3G", "CD3D", "CD3E", "CD2","CD8A", "GZMA","CD4", "FOXP3","KLRC1", "KLRC3","CD19", "CD79A","SLAMF7", "IGKC" ,"FCGR2A", "CSF1R","FLT3","CLEC4C")

DefaultAssay(results)<-"RNA"
results<-ScaleData(results, features = pbmc_marks_Chang)
## Centering and scaling data matrix
FeaturePlot(results, pbmc_marks_Chang, ncol = 4)

DotPlot(results, features = pbmc_marks_Chang)+theme(axis.text.x = element_text(vjust = 0.7, angle = 90))

VlnPlot(results, features = pbmc_marks_Chang)+theme(axis.text.x = element_text(vjust = 0.7, angle = 90))

DoHeatmap(results, pbmc_marks_Chang)

results<-ScaleData(results, features = pbmc_marks_Chang, split.by = "orig.ident")
## Centering and scaling data matrix
## Centering and scaling data from split JC10
## Centering and scaling data from split JC11
## Centering and scaling data from split JC12
## Centering and scaling data from split JC4
## Centering and scaling data from split JC5
## Centering and scaling data from split JC6
## Centering and scaling data from split JC7
## Centering and scaling data from split JC8
## Centering and scaling data from split JC9
DoHeatmap(results, pbmc_marks_Chang, disp.min = -2, disp.max = 2)

Observations - The heatmap looks somewhat different from what I’m used to on account of it being a mixed population without expression of most markers in most cell types (as opposed to the typical CD4 or the DE defined markers). Based on this, I would annotate the first 15 clusters as : 0- T cells 1- T cells 2- T cells 3- T cells 4- T cells/CD8 5- B cells/Plasma 6- T cells 7- T cells/TREG 8- T cells 9- NK 10- B cells/Plasma 11-macrophages/DCs 12-macrophages 13-macrophages 14- ?

Finally we have those that I picked for CD4 more specifically in the immunity paper (Collora et al. 2022), RNA and protein:

Cluster  Transcriptomic marker  Surface protein marker positive GZMB Th1 GZMB, CCL5, TBX21 CD45RO, HLA DR GZMK Th1 TBX21, GZMK CD45RO, IL7R, CXCR3, CCR6, CD69 Th2 GATA3 CD45RO, IL7R, CCR4, CD69 Th17 RORC, CTSH, CCR6 CD45RO, IL7R, CCR6, TIGIT Treg FOXP3, IL2RA CD45RO, TIGIT, CD25, HLA DR Proliferating MKI67 CD45RO, IL7R, CXCR3, CCR6, CD40L, CD137, PD1, TIGIT, HLA-DR CXCR5 Memory CXCR5 CD45RO Memory CD45RO, PD1 Naïve CCR7, SELL, TCF7 CD45RA, IL7R MT Percent mitochondria genes CD45RO

CD4_marks_Collora_RNA<-c("GZMB", "CCL5", "TBX21", "GZMK","GATA3","RORC", "CTSH","FOXP3", "IL2RA","MKI67", "CXCR5", "CCR7", "SELL", "TCF7", "mt")

DefaultAssay(results)<-"RNA"
results<-ScaleData(results, features = CD4_marks_Collora_RNA)
## Centering and scaling data matrix
FeaturePlot(results, CD4_marks_Collora_RNA, ncol = 4)

DotPlot(results, features = CD4_marks_Collora_RNA) +theme(axis.text.x = element_text(vjust = 0.7, angle = 90))

VlnPlot(results, features = CD4_marks_Collora_RNA) +theme(axis.text.x = element_text(vjust = 0.7, angle = 90))

DoHeatmap(results, CD4_marks_Collora_RNA[1:14])

results<-ScaleData(results, features = CD4_marks_Collora_RNA, split.by = "orig.ident")
## Centering and scaling data matrix
## Centering and scaling data from split JC10
## Centering and scaling data from split JC11
## Centering and scaling data from split JC12
## Centering and scaling data from split JC4
## Centering and scaling data from split JC5
## Centering and scaling data from split JC6
## Centering and scaling data from split JC7
## Centering and scaling data from split JC8
## Centering and scaling data from split JC9
DoHeatmap(results, CD4_marks_Collora_RNA[1:14], disp.min = -2, disp.max = 2)

CD4_marks_Collora_protein<-c("CD45RA-TotalA", "CD45RO-TotalA", "HLA-DR-DP-DQ-TotalA", "CD127-TotalA","CD183-TotalA","CD196-TotalA","CD194-TotalA","TIGIT-TotalA","CD25-TotalA", "CD154-TotalA", "CD137-TotalA", "CD279-TotalA")
DefaultAssay(results)<-"ADT.dsb"
results<-ScaleData(results, features = CD4_marks_Collora_protein)
## Centering and scaling data matrix
FeaturePlot(results, CD4_marks_Collora_protein, ncol = 4, reduction = "umap", min.cutoff = 'q5', max.cutoff = 'q95')

DotPlot(results, features = CD4_marks_Collora_protein, scale.min=0, scale.max=100)+theme(axis.text.x = element_text(vjust = 0.7, angle = 90))

VlnPlot(results, features = CD4_marks_Collora_protein)+theme(axis.text.x = element_text(vjust = 0.7, angle = 90))

DoHeatmap(results, CD4_marks_Collora_protein)

Observations and rough annotation, note these markers are for CD4 T cells so we’re probably not going to be able to annotate clusters other than 0-8 (minus 5) RNA alone- 0- Naive/Memory CD4 1- Naive/Memory CD4 2- Naive/Memory CD4 3- Naive/Memory CD4 4- GZMB+ TH1 5- 6- Naive CD4 7- Treg, proliferating 8- Memory CD4 9- GZMB+ TH1 10- 11- 12- 13- 14- Protein alone- 0- RA positive 1- RO positive IL7R positive CXCR3 Positive CCR6 Positive CCR4 Positive TIGIT Positive CD25 positive CD154 Positive CD137 Positive CD279 Positive 2- RO positive IL7R positive CXCR3 Positive CD154 Positive CD137 Positive 3- RO positive IL7R positive CXCR3 Positive 4- RO positive 5- DR Positive, RA positive 6- RA positive 7- DR Positive RO positive, CD25 positive 8- CD137 Positive 9- RA positive 10- DR Positive 11- 12- DR Positive 13- 14-

Composite annotation (Collora markers)- 0- Naive CD4 T cells 1- Memory CD4, effector polarized 2- Memory CD4, TFh polarized? 3- Memory CD4 4- Memory CD4 5- ? 6- Naive CD4 7- Treg, Activated cells 8- ? 9- Effector/GZMB Th1 10- 11- 12- 13- 14-

Final initial clustering across markers for the first 15 clusters

This is the annotation I came up with for the first 15 clusters based on the markers above.

0- Naive CD4 T cells 1- Memory CD4, effector polarized 2- Memory CD4, TFh polarized? 3- Memory CD4 4- Memory CD4 Th1 GZMB+ 5- B cells 6- Naive CD4 7- Treg, Activated cells 8- Naive T cells 9- Effector/GZMB Th1/ NK 10-B cells 11-CD14+ Mono 12-DC 13-FCGR3A+ Mono 14-Memory CD4+

Some initial observations: The remaining clusters are small and likely cna be merged into other clusters based on some criteria. 7 Possibly is comprized of T regs and proliferating cells. 4/9 is the cytotoxic section We’re currently under utilizing the protein markers for annotation, but further annotation will help with that. 1 and 2 appear to be merging across several clusters including subsets that are PD1 positive, that have different effector profiles, etc. We will likely need to do a separate clustering focused on specific subsets to parse the heterogeneity here.

devtools::session_info()
## Warning in system("timedatectl", intern = TRUE): running command 'timedatectl'
## had status 1
## - Session info ---------------------------------------------------------------
##  setting  value
##  version  R version 4.2.0 (2022-04-22)
##  os       Red Hat Enterprise Linux 8.7 (Ootpa)
##  system   x86_64, linux-gnu
##  ui       X11
##  language (EN)
##  collate  C
##  ctype    C
##  tz       Etc/UTC
##  date     2023-05-25
##  pandoc   2.17.1.1 @ /usr/lib/rstudio-server/bin/quarto/bin/ (via rmarkdown)
## 
## - Packages -------------------------------------------------------------------
##  package                     * version   date (UTC) lib source
##  abind                         1.4-5     2016-07-21 [2] CRAN (R 4.2.0)
##  AnnotationDbi               * 1.60.2    2023-03-10 [1] Bioconductor
##  AnnotationFilter            * 1.22.0    2022-11-01 [1] Bioconductor
##  beeswarm                      0.4.0     2021-06-01 [2] CRAN (R 4.2.0)
##  Biobase                     * 2.58.0    2022-11-01 [1] Bioconductor
##  BiocFileCache                 2.6.1     2023-02-17 [1] Bioconductor
##  BiocGenerics                * 0.44.0    2022-11-01 [1] Bioconductor
##  BiocIO                        1.8.0     2022-11-01 [1] Bioconductor
##  BiocManager                   1.30.20   2023-02-24 [1] CRAN (R 4.2.0)
##  BiocParallel                  1.32.6    2023-03-17 [1] Bioconductor
##  biomaRt                       2.54.1    2023-03-20 [1] Bioconductor
##  Biostrings                  * 2.66.0    2022-11-01 [1] Bioconductor
##  bit                           4.0.5     2022-11-15 [2] CRAN (R 4.2.0)
##  bit64                         4.0.5     2020-08-30 [2] CRAN (R 4.2.0)
##  bitops                        1.0-7     2021-04-24 [2] CRAN (R 4.2.0)
##  blob                          1.2.4     2023-03-17 [1] CRAN (R 4.2.0)
##  BSgenome                    * 1.66.3    2023-02-16 [1] Bioconductor
##  BSgenome.Hsapiens.UCSC.hg38 * 1.4.5     2023-05-03 [1] Bioconductor
##  bslib                         0.4.2     2022-12-16 [1] CRAN (R 4.2.0)
##  cachem                        1.0.8     2023-05-01 [1] CRAN (R 4.2.0)
##  callr                         3.7.3     2022-11-02 [1] CRAN (R 4.2.0)
##  cli                           3.6.1     2023-03-23 [1] CRAN (R 4.2.0)
##  cluster                       2.1.4     2022-08-22 [2] CRAN (R 4.2.0)
##  codetools                     0.2-19    2023-02-01 [2] CRAN (R 4.2.0)
##  colorspace                    2.1-0     2023-01-23 [2] CRAN (R 4.2.0)
##  cowplot                       1.1.1     2020-12-30 [2] CRAN (R 4.2.0)
##  crayon                        1.5.2     2022-09-29 [2] CRAN (R 4.2.0)
##  curl                          5.0.0     2023-01-12 [2] CRAN (R 4.2.0)
##  data.table                    1.14.8    2023-02-17 [2] CRAN (R 4.2.0)
##  DBI                           1.1.3     2022-06-18 [2] CRAN (R 4.2.0)
##  dbplyr                        2.3.2     2023-03-21 [1] CRAN (R 4.2.0)
##  DelayedArray                  0.24.0    2022-11-01 [1] Bioconductor
##  deldir                        1.0-6     2021-10-23 [2] CRAN (R 4.2.0)
##  devtools                      2.4.5     2022-10-11 [1] CRAN (R 4.2.0)
##  digest                        0.6.31    2022-12-11 [2] CRAN (R 4.2.0)
##  dplyr                       * 1.1.2     2023-04-20 [1] CRAN (R 4.2.0)
##  ellipsis                      0.3.2     2021-04-29 [2] CRAN (R 4.2.0)
##  EnsDb.Hsapiens.v86          * 2.99.0    2023-05-18 [1] Bioconductor
##  ensembldb                   * 2.22.0    2022-11-01 [1] Bioconductor
##  evaluate                      0.20      2023-01-17 [2] CRAN (R 4.2.0)
##  fansi                         1.0.4     2023-01-22 [2] CRAN (R 4.2.0)
##  farver                        2.1.1     2022-07-06 [2] CRAN (R 4.2.0)
##  fastmap                       1.1.1     2023-02-24 [1] CRAN (R 4.2.0)
##  fastmatch                     1.1-3     2021-07-23 [2] CRAN (R 4.2.0)
##  filelock                      1.0.2     2018-10-05 [1] CRAN (R 4.2.0)
##  fitdistrplus                  1.1-8     2022-03-10 [2] CRAN (R 4.2.0)
##  fs                            1.6.1     2023-02-06 [2] CRAN (R 4.2.0)
##  future                        1.32.0    2023-03-07 [1] CRAN (R 4.2.0)
##  future.apply                  1.10.0    2022-11-05 [1] CRAN (R 4.2.0)
##  generics                      0.1.3     2022-07-05 [2] CRAN (R 4.2.0)
##  GenomeInfoDb                * 1.34.9    2023-02-02 [1] Bioconductor
##  GenomeInfoDbData              1.2.9     2023-03-17 [1] Bioconductor
##  GenomicAlignments             1.34.1    2023-03-09 [1] Bioconductor
##  GenomicFeatures             * 1.50.4    2023-01-24 [1] Bioconductor
##  GenomicRanges               * 1.50.2    2022-12-16 [1] Bioconductor
##  ggbeeswarm                    0.7.2     2023-04-29 [1] CRAN (R 4.2.0)
##  ggplot2                     * 3.4.2     2023-04-03 [1] CRAN (R 4.2.0)
##  ggrastr                       1.0.1     2021-12-08 [1] CRAN (R 4.2.0)
##  ggrepel                       0.9.3     2023-02-03 [1] CRAN (R 4.2.0)
##  ggridges                      0.5.4     2022-09-26 [1] CRAN (R 4.2.0)
##  globals                       0.16.2    2022-11-21 [1] CRAN (R 4.2.0)
##  glue                          1.6.2     2022-02-24 [2] CRAN (R 4.2.0)
##  goftest                       1.2-3     2021-10-07 [2] CRAN (R 4.2.0)
##  gridExtra                     2.3       2017-09-09 [2] CRAN (R 4.2.0)
##  gtable                        0.3.3     2023-03-21 [1] CRAN (R 4.2.0)
##  harmony                     * 0.1.1     2022-11-14 [1] CRAN (R 4.2.0)
##  highr                         0.10      2022-12-22 [1] CRAN (R 4.2.0)
##  hms                           1.1.3     2023-03-21 [1] CRAN (R 4.2.0)
##  htmltools                     0.5.5     2023-03-23 [1] CRAN (R 4.2.0)
##  htmlwidgets                   1.6.2     2023-03-17 [1] CRAN (R 4.2.0)
##  httpuv                        1.6.9     2023-02-14 [1] CRAN (R 4.2.0)
##  httr                          1.4.5     2023-02-24 [1] CRAN (R 4.2.0)
##  ica                           1.0-3     2022-07-08 [2] CRAN (R 4.2.0)
##  igraph                        1.4.2     2023-04-07 [1] CRAN (R 4.2.0)
##  IRanges                     * 2.32.0    2022-11-01 [1] Bioconductor
##  irlba                         2.3.5.1   2022-10-03 [1] CRAN (R 4.2.0)
##  jquerylib                     0.1.4     2021-04-26 [2] CRAN (R 4.2.0)
##  jsonlite                      1.8.4     2022-12-06 [2] CRAN (R 4.2.0)
##  KEGGREST                      1.38.0    2022-11-01 [1] Bioconductor
##  KernSmooth                    2.23-20   2021-05-03 [2] CRAN (R 4.2.0)
##  knitr                         1.42      2023-01-25 [1] CRAN (R 4.2.0)
##  labeling                      0.4.2     2020-10-20 [2] CRAN (R 4.2.0)
##  later                         1.3.0     2021-08-18 [2] CRAN (R 4.2.0)
##  lattice                       0.21-8    2023-04-05 [1] CRAN (R 4.2.0)
##  lazyeval                      0.2.2     2019-03-15 [2] CRAN (R 4.2.0)
##  leiden                        0.4.3     2022-09-10 [1] CRAN (R 4.2.0)
##  lifecycle                     1.0.3     2022-10-07 [1] CRAN (R 4.2.0)
##  listenv                       0.9.0     2022-12-16 [2] CRAN (R 4.2.0)
##  lmtest                        0.9-40    2022-03-21 [2] CRAN (R 4.2.0)
##  magrittr                      2.0.3     2022-03-30 [2] CRAN (R 4.2.0)
##  MASS                          7.3-59    2023-04-21 [1] CRAN (R 4.2.0)
##  Matrix                      * 1.5-4     2023-04-04 [1] CRAN (R 4.2.0)
##  MatrixGenerics                1.10.0    2022-11-01 [1] Bioconductor
##  matrixStats                   0.63.0    2022-11-18 [2] CRAN (R 4.2.0)
##  memoise                       2.0.1     2021-11-26 [2] CRAN (R 4.2.0)
##  mime                          0.12      2021-09-28 [2] CRAN (R 4.2.0)
##  miniUI                        0.1.1.1   2018-05-18 [2] CRAN (R 4.2.0)
##  munsell                       0.5.0     2018-06-12 [2] CRAN (R 4.2.0)
##  nlme                          3.1-162   2023-01-31 [1] CRAN (R 4.2.0)
##  parallelly                    1.35.0    2023-03-23 [1] CRAN (R 4.2.0)
##  patchwork                     1.1.2     2022-08-19 [1] CRAN (R 4.2.0)
##  pbapply                       1.7-0     2023-01-13 [1] CRAN (R 4.2.0)
##  pillar                        1.9.0     2023-03-22 [1] CRAN (R 4.2.0)
##  pkgbuild                      1.4.0     2022-11-27 [1] CRAN (R 4.2.0)
##  pkgconfig                     2.0.3     2019-09-22 [2] CRAN (R 4.2.0)
##  pkgload                       1.3.2     2022-11-16 [1] CRAN (R 4.2.0)
##  plotly                        4.10.1    2022-11-07 [1] CRAN (R 4.2.0)
##  plyr                          1.8.8     2022-11-11 [1] CRAN (R 4.2.0)
##  png                           0.1-8     2022-11-29 [1] CRAN (R 4.2.0)
##  polyclip                      1.10-4    2022-10-20 [1] CRAN (R 4.2.0)
##  prettyunits                   1.1.1     2020-01-24 [2] CRAN (R 4.2.0)
##  processx                      3.8.1     2023-04-18 [1] CRAN (R 4.2.0)
##  profvis                       0.3.8     2023-05-02 [1] CRAN (R 4.2.0)
##  progress                      1.2.2     2019-05-16 [2] CRAN (R 4.2.0)
##  progressr                     0.13.0    2023-01-10 [1] CRAN (R 4.2.0)
##  promises                      1.2.0.1   2021-02-11 [2] CRAN (R 4.2.0)
##  ProtGenerics                  1.30.0    2022-11-01 [1] Bioconductor
##  ps                            1.7.5     2023-04-18 [1] CRAN (R 4.2.0)
##  purrr                         1.0.1     2023-01-10 [1] CRAN (R 4.2.0)
##  R.methodsS3                   1.8.2     2022-06-13 [1] CRAN (R 4.2.0)
##  R.oo                          1.25.0    2022-06-12 [1] CRAN (R 4.2.0)
##  R.utils                       2.12.2    2022-11-11 [1] CRAN (R 4.2.0)
##  R6                            2.5.1     2021-08-19 [2] CRAN (R 4.2.0)
##  RANN                          2.6.1     2019-01-08 [2] CRAN (R 4.2.0)
##  rappdirs                      0.3.3     2021-01-31 [2] CRAN (R 4.2.0)
##  RColorBrewer                  1.1-3     2022-04-03 [2] CRAN (R 4.2.0)
##  Rcpp                        * 1.0.10    2023-01-22 [1] CRAN (R 4.2.0)
##  RcppAnnoy                     0.0.20    2022-10-27 [1] CRAN (R 4.2.0)
##  RcppRoll                      0.3.0     2018-06-05 [2] CRAN (R 4.2.0)
##  RCurl                         1.98-1.12 2023-03-27 [1] CRAN (R 4.2.0)
##  remotes                       2.4.2     2021-11-30 [2] CRAN (R 4.2.0)
##  reshape2                      1.4.4     2020-04-09 [2] CRAN (R 4.2.0)
##  restfulr                      0.0.15    2022-06-16 [1] CRAN (R 4.2.0)
##  reticulate                    1.28      2023-01-27 [1] CRAN (R 4.2.0)
##  rjson                         0.2.21    2022-01-09 [2] CRAN (R 4.2.0)
##  rlang                         1.1.1     2023-04-28 [1] CRAN (R 4.2.0)
##  rmarkdown                     2.21      2023-03-26 [1] CRAN (R 4.2.0)
##  ROCR                          1.0-11    2020-05-02 [2] CRAN (R 4.2.0)
##  Rsamtools                     2.14.0    2022-11-01 [1] Bioconductor
##  RSQLite                       2.3.1     2023-04-03 [1] CRAN (R 4.2.0)
##  rstudioapi                    0.14      2022-08-22 [1] CRAN (R 4.2.0)
##  rsvd                          1.0.5     2021-04-16 [1] CRAN (R 4.2.0)
##  rtracklayer                 * 1.58.0    2022-11-01 [1] Bioconductor
##  Rtsne                         0.16      2022-04-17 [2] CRAN (R 4.2.0)
##  S4Vectors                   * 0.36.2    2023-02-26 [1] Bioconductor
##  sass                          0.4.5     2023-01-24 [1] CRAN (R 4.2.0)
##  scales                        1.2.1     2022-08-20 [1] CRAN (R 4.2.0)
##  scattermore                   0.8       2022-02-14 [1] CRAN (R 4.2.0)
##  sctransform                   0.3.5     2022-09-21 [1] CRAN (R 4.2.0)
##  sessioninfo                   1.2.2     2021-12-06 [2] CRAN (R 4.2.0)
##  Seurat                      * 4.3.0     2022-11-18 [1] CRAN (R 4.2.0)
##  SeuratObject                * 4.1.3     2022-11-07 [1] CRAN (R 4.2.0)
##  SeuratWrappers              * 0.3.1     2023-03-17 [1] Github (satijalab/seurat-wrappers@d28512f)
##  shiny                         1.7.4     2022-12-15 [1] CRAN (R 4.2.0)
##  Signac                      * 1.9.0     2022-12-08 [1] CRAN (R 4.2.0)
##  sp                            1.6-0     2023-01-19 [1] CRAN (R 4.2.0)
##  spatstat.data                 3.0-1     2023-03-12 [1] CRAN (R 4.2.0)
##  spatstat.explore              3.1-0     2023-03-14 [1] CRAN (R 4.2.0)
##  spatstat.geom                 3.1-0     2023-03-12 [1] CRAN (R 4.2.0)
##  spatstat.random               3.1-4     2023-03-13 [1] CRAN (R 4.2.0)
##  spatstat.sparse               3.0-1     2023-03-12 [1] CRAN (R 4.2.0)
##  spatstat.utils                3.0-2     2023-03-11 [1] CRAN (R 4.2.0)
##  stringi                       1.7.12    2023-01-11 [1] CRAN (R 4.2.0)
##  stringr                       1.5.0     2022-12-02 [1] CRAN (R 4.2.0)
##  SummarizedExperiment          1.28.0    2022-11-01 [1] Bioconductor
##  survival                      3.5-5     2023-03-12 [1] CRAN (R 4.2.0)
##  tensor                        1.5       2012-05-05 [2] CRAN (R 4.2.0)
##  tibble                        3.2.1     2023-03-20 [1] CRAN (R 4.2.0)
##  tidyr                         1.3.0     2023-01-24 [1] CRAN (R 4.2.0)
##  tidyselect                    1.2.0     2022-10-10 [1] CRAN (R 4.2.0)
##  urlchecker                    1.0.1     2021-11-30 [1] CRAN (R 4.2.0)
##  usethis                       2.1.6     2022-05-25 [1] CRAN (R 4.2.0)
##  utf8                          1.2.3     2023-01-31 [1] CRAN (R 4.2.0)
##  uwot                          0.1.14    2022-08-22 [1] CRAN (R 4.2.0)
##  vctrs                         0.6.2     2023-04-19 [1] CRAN (R 4.2.0)
##  vipor                         0.4.5     2017-03-22 [2] CRAN (R 4.2.0)
##  viridisLite                   0.4.2     2023-05-02 [1] CRAN (R 4.2.0)
##  withr                         2.5.0     2022-03-03 [2] CRAN (R 4.2.0)
##  xfun                          0.39      2023-04-20 [1] CRAN (R 4.2.0)
##  XML                           3.99-0.14 2023-03-19 [1] CRAN (R 4.2.0)
##  xml2                          1.3.3     2021-11-30 [2] CRAN (R 4.2.0)
##  xtable                        1.8-4     2019-04-21 [2] CRAN (R 4.2.0)
##  XVector                     * 0.38.0    2022-11-01 [1] Bioconductor
##  yaml                          2.3.7     2023-01-23 [1] CRAN (R 4.2.0)
##  zlibbioc                      1.44.0    2022-11-01 [1] Bioconductor
##  zoo                           1.8-12    2023-04-13 [1] CRAN (R 4.2.0)
## 
##  [1] /gpfs/gibbs/project/ya-chi_ho/jac369/R/4.2
##  [2] /vast/palmer/apps/avx2/software/R/4.2.0-foss-2020b/lib64/R/library
## 
## ------------------------------------------------------------------------------